<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta
      name="viewport"
      content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
    />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>JS错误处理</title>
  </head>
  <body>
    <script>

      try {
        //手动抛出错误  Error 是一个类
        // throw new Error('出了点问题, 您的密码格式不对~~');
        //可以抛出任意类型的数据
        throw '今天有点冷~~';
        console.log(123);
        console.log(456);
      } catch (e) {
        // console.log('代码运行出错了~');
        console.dir(e);
      }
      
      console.log(789);

      /**
       * 语法固定 try...catch   try 尝试的意思  catch 捕获  作用: 统一处理错误
       * 1. try catch捕获到错误之后, 后续代码可以继续执行
       * 2. catch 可以将错误信息捕获到. e 是一个对象, 有 message 和 stack 两个属性
       *                                             错误信息    错误位置
       * 3. 抛出错误之后, 在后续的 try 里面的代码不会执行
       * 4. try 不能捕获语法错误. 其他类型错误可以捕获.
       * 5. 允许使用 throw 手动的抛出错误
       * 6. 抛出任意类型的数据
       */
    </script>
  </body>
</html>
